The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
The Basic Input/Output System (BIOS) is one of the most crucial components on a computer motherboard. The BIOS software is preloaded into a memory (the BIOS memory) of the BIOS, and typically is the first code run by a computer when powered on. When the computer starts up, the first job for the BIOS is the power-on self-test, which initializes and identifies the system devices such as the CPU, RAM, video display card, keyboard and mouse, hard disk drive, optical disc drive and other hardware. The BIOS then locates a boot loader software held on a peripheral device (designated as a “boot device”), such as a hard disk or a CD/DVD, and loads and executes that software, giving it control of the operating system (OS). This process is known as booting, or booting up, which is short for bootstrapping.
Generally, the BIOS memory for storing the BIOS software is a non-volatile chip, such as an EEPROM chip on the motherboard. Typically, a serial peripheral interface (SPI) bus is used for communicating with the EEPROM chip. In modern computer systems, contents stored in the BIOS chip can be rewritten without removing it from the motherboard, allowing the BIOS software to be upgraded in place. The rewriting process of the BIOS software is generally referred to as flashing the BIOS.
Generally, a “service processor” (SP) or a “baseboard management controller” (BMC) refer to a specialized microcontroller that manages the interface between system management software and platform hardware. The BMC can be embedded on the motherboard of a computer, generally a server. For example, different types of sensors can be built into the computer system, and the BMC reads these sensors to obtain parameters such as temperature, cooling fan speeds, power status, operating system (OS) status, etc. The BMC monitors the sensors and can send alerts to a system administrator via the network if any of the parameters do not stay within preset limits, indicating a potential failure of the system. The administrator can also remotely communicate with the BMC to take some corrective action such as resetting or power cycling the system to get a hung OS running again.
Till today, effectively and efficiently upgrading BIOS software remains a challenging task. Therefore, a heretofore unaddressed need still exists in the art to address the aforementioned deficiencies and inadequacies.